<!-- 顶部通栏组件 -->
<template>
    <nav class="app-topnav">
      <div class="container">
        <ul>
            <!-- 如果有token则显示 -->
            <template v-if="profile.token">
                <li><RouterLink to="/member" href="javascript:;"><i class="iconfont icon-user"></i>{{ profile.account }}</RouterLink></li>
                <li><a href="javascript:;" @click="loginOut()">退出登录</a></li>
            </template>
            <!-- 如果没有则不显示 -->
            <template v-else>
                <li><RouterLink to="/login">请先登录</RouterLink></li>
                <li><a href="javascript:;">免费注册</a></li>
            </template>
          <li><a href="javascript:;">我的订单</a></li>
          <li><a href="javascript:;">会员中心</a></li>
          <li><a href="javascript:;">帮助中心</a></li>
          <li><a href="javascript:;">关于我们</a></li>
          <li><a href="javascript:;"><i class="iconfont icon-phone"></i>手机版</a></li>
        </ul>
      </div>
    </nav>
  </template>
  <script>
import { computed } from '@vue/runtime-core'
import { useStore} from 'vuex'
import { useRouter } from 'vue-router'
  export default {
    name: 'AppTopnav',
    setup () {
        //获取用户的登录信息才能控制切换导航菜单
        const store = useStore()
        const router = useRouter()
        //使用vuex中的state需要设计计算属性，才能成为响应式数据
        const profile = computed(() => {
            return store.state.user.profile
        })

        //退出登录
        const loginOut = () => {
          //清除token相关信息
          store.commit('user/setUser', {})
          //合并购物车
          store.commit('setCart', [])
          //跳转到登录页
          router.push('/login')
        }
        return {profile, loginOut}
    }
  }
  </script>
  <style scoped lang="less">
  .app-topnav {
    background: #333;
    ul {
      display: flex;
      height: 53px;
      justify-content: flex-end;
      align-items: center;
      li {
        a {
          padding: 0 15px;
          color: #cdcdcd;
          line-height: 1;
          display: inline-block;
          i {
            font-size: 14px;
            margin-right: 2px;
          }
          &:hover {
            color: @xtxColor;
          }
        }
        ~ li {
          a {
            border-left: 2px solid #666;
          }
        }
      }
    }
  }
  </style>